#!bin/sh

#制作framework

read -p "请输入要制作target的名字：" target_name

if [[ -z "${target_name}" ]]; then
	echo "没有有效的target,已经推出"
	exit 0
fi

# 工程所在的路径
project_dir=$(pwd)

# 构建之后生成的内容的地址
build_dir="${project_dir}/build"

# #不需要会自动创建
# if [[ ! -d "${build_dir}"  ]]; then
# 	#如果不存在目录，就递归创建目录
# 	mkdir -p "${build_dir}"
# fi

#运行模式 Debug/Release 默认Release
mode=Release

#存放framework最终产品的路径
framework_dir="${project_dir}/Framework"

#移除上一次生成的framework
rm -rf "#{framework_dir}"

#模拟器生成的framework的地址
simulator_framework_dir="${build_dir}/${mode}-iphonesimulator/${target_name}.framework/${target_name}"
#模拟器生成的bundle的地址
simulator_bundle_dir="${build_dir}/${mode}-iphonesimulator/${target_name}.framework/${bundle_name}.bundle"

#真机生成的framework的地址
iphone_framework_dir="${build_dir}/${mode}-iphoneos/${target_name}.framework/${target_name}"
#真机生成的framework的地址
iphone_dunble_dir="${build_dir}/${mode}-iphoneos/${target_name}.framework/${bundle_name}.bundle"

#清空上次build的数据，并执行build。
#VALID_ARCHS 指定需要构建的结构特， 其中 arm64 真机模拟器都包含  x86_64 i386是模拟器的架构 armv7 是真机架构，armv7s真机架构但一般不在包含，需要的话在VALID_ARCHS中添加
xcodebuild -target "${target_name}" -scheme "${target_name}" -configuration "${mode}" -sdk iphoneos clean build BUILD_DIR="${build_dir}" BUILD_ROOT="${build_dir}" VALID_ARCHS="arm64 armv7"
xcodebuild -target "${target_name}" -scheme "${target_name}" -configuration "${mode}" -sdk iphonesimulator clean build BUILD_DIR="${build_dir}" BUILD_ROOT="${build_dir}" VALID_ARCHS="x86_64 i386"

if [[ -f "${simulator_framework_dir}" ]] && [[ -f "${iphone_framework_dir}" ]] ; then
	
	lipo -create "${simulator_framework_dir}" "${iphone_framework_dir}" -output "${iphone_framework_dir}"

	#拷贝
	cp -r "${build_dir}/${mode}-iphoneos/" "${framework_dir}"

	#打开
	open "${framework_dir}"

elif [[ -f "${simulator_framework_dir}" ]]; then
	echo "没有用真机生成对应架构的静态库"
	exit 0
else
	echo "没有用模拟器生成对应架构的静态库"
	exit 0
fi
